From 96fd15454b9bf95524ab6b61c64e6e257b10e9e9 Mon Sep 17 00:00:00 2001 From: Matthias Clasen Date: Wed, 24 Sep 2014 23:33:23 -0400 Subject: [PATCH] Make GtkModelButton work with touch Some recent refactoring changed things so that in_button is no longer TRUE when released() is called for touch events. As a minimal fix, let GtkButton do more of the work by chaining up to its pressed and released handlers, which know how to handle touch events. This could be further improved by leaving more of the state handling to GtkButton, like it was done for GtkToggleButton. --- gtk/gtkmodelbutton.c | 15 +++++---------- 1 file changed, 5 insertions(+), 10 deletions(-) diff --git a/gtk/gtkmodelbutton.c b/gtk/gtkmodelbutton.c index 568d54f040..8762839799 100644 --- a/gtk/gtkmodelbutton.c +++ b/gtk/gtkmodelbutton.c @@ -675,22 +675,17 @@ out: static void gtk_model_button_pressed (GtkButton *button) { - button->priv->button_down = TRUE; + GTK_BUTTON_CLASS (gtk_model_button_parent_class)->pressed (button); + gtk_model_button_update_state (GTK_MODEL_BUTTON (button)); - gtk_widget_queue_draw (GTK_WIDGET (button)); } static void gtk_model_button_released (GtkButton *button) { - if (button->priv->button_down) - { - button->priv->button_down = FALSE; - if (button->priv->in_button) - gtk_button_clicked (button); - gtk_model_button_update_state (GTK_MODEL_BUTTON (button)); - gtk_widget_queue_draw (GTK_WIDGET (button)); - } + GTK_BUTTON_CLASS (gtk_model_button_parent_class)->released (button); + + gtk_model_button_update_state (GTK_MODEL_BUTTON (button)); } static void -- 2.30.2